<?php

namespace View;

class Login {
	
	// Nycklar för $_POST
	private $post_username = "username";
	private $post_password = "password";
	private $post_login = "login";
	private $post_remember = "remember";
	private $post_logout = "logout";
	
	// Namn på cookies
	private $cookie_login = "LoginCookie";
	private $cookie_remember = "RememberCookie";
	
	// Meddelanden
	public $NO_MESSAGE = "";
	public $LOGGED_IN = "Du är inloggad som: ";
	public $LOGGED_OUT = "Du är utloggad.";
	public $NOT_LOGGED_IN = "Fel användarnamn eller lösenord.";
	
	// Kollar om användaren är inloggad
	public function is_logged_in() {
		return (isset($_COOKIE[$this->cookie_login]) && $_COOKIE[$this->cookie_login]);
	}
	
	// Loggar in användaren
	public function do_login($remember = false) {
		setcookie($this->cookie_login, true, time() + 3600);
		$_COOKIE[$this->cookie_login] = true;
		
		// Om inloggningen ska sparas...
		if ($remember) {
			setcookie($this->cookie_remember, $this->get_username(), time()+60*60*24*30);
			$_COOKIE[$this->cookie_remember] = true;
		}
	}
	
	// Kollar om det finns en sparad inloggning
	public function remember() {
		return isset($_COOKIE[$this->cookie_remember]) ? $_COOKIE[$this->cookie_remember] : false;
	}
	
	// Loggar ut användaren
	public function do_logout() {
		setcookie($this->cookie_login, false);
		$_COOKIE[$this->cookie_login] = false;
	}
	
	// Skapar ett inloggningsformulär
	public function do_login_box($message, $remembered_user) {
		
		$html = '<h1>Logga in</h1>'.$message.'<form method="post" action="?c=login">
					<label>Användarnamn:
						<input type="text" name="'.$this->post_username.'" size="20" maxlength="20"';
		// Om man valt att spara sin inloggning, fyll i användarnamn automatiskt
		if ($remembered_user) { $html .= ' value="'.$remembered_user.'"'; }
		$html .= ' />
					</label><br />
					<label>Lösenord:
						<input type="password" name="'.$this->post_password.'" size="20" maxlength="20" />
					</label><br />
					<input type="submit" name="'.$this->post_login.'" value="Logga in" />
					<input type="checkbox" name="'.$this->post_remember.'" value="true" /> Kom ihåg mig
				</form>
				<a href="?c=register">Registrera</a>';
		
		return $html;
	}
	
	// Skapar en utloggningsknapp
	public function do_logout_box($message) {
		
		return '<h1>Inloggad</h1>'.$message.'<form method="post" action="?c=login">
		<input type="submit" name="'.$this->post_logout.'" value="Logga ut" />
		</form>';
		
	}
	
	// Returnerar inmatat användarnamn
	public function get_username() {
		return isset($_POST[$this->post_username]) ? $_POST[$this->post_username] : null;
	}
	
	// Returnerar inmatat lösenord
	public function get_password() {
		return isset($_POST[$this->post_password]) ? $_POST[$this->post_password] : null;
	}
	
	// Kollar om användaren försökt logga in
	public function tried_to_login() {
		return isset($_POST[$this->post_login]);
	}
	
	// Kollar om användaren försökt logga ut
	public function tried_to_logout() {
		return isset($_POST[$this->post_logout]);
	}
	
	// Kollar om "kom ihåg mig"-rutan är ikryssad
	public function checked_remember_box() {
		return isset($_POST[$this->post_remember]);
	}
	
}

?>